import { ShellError } from "./error";

/**
 * 微信用户模块工具类
 */
export default class WxUserUtil
{
    /**
     * 执行微信的登录操作
     * 
     * @param {number} timeout 超时时间，单位 ms
     * @returns {Promise<string>} 返回用户登录凭据 code
     * @throws {ShellError}
     */
    static doLogin(timeout = 10000){
        return (new Promise((resolve, reject) => {
            wx.login({
                timeout: timeout,
                success: (result)=>{
                    if(result.code){
                        resolve(result.code)
                    }else{
                        reject(new ShellError('登陆失败：'+res.errMsg))
                    }
                },
                fail: ()=>{
                    reject(new ShellError('登录失败'))
                },
            });
        }))
    }

    /**
     * 检查微信登录会话是否已失效
     * 
     * @returns {Promise<boolean>} true=会话未过期， false=会话已过期
     */
    static checkSession(){
        return (new Promise((resolve) => {
            wx.checkSession({
                success: ()=>{
                    resolve(true)
                },
                fail: ()=>{
                    resolve(false)
                }
            })
        }))
    }

    static getUserInfo(withCredentials = false){
        return (new Promise((resolve, reject) => {
            wx.getUserInfo({
                withCredentials: 'false',
                lang: 'zh_CN',
                success: (result)=>{
                    
                },
                fail: ()=>{},
                complete: ()=>{}
            });
        }))
    }

    /**
     * 选择地址
     */
    static chooseAddress(){

    }

    /**
     * 获取最近使用的地址
     */
    static getLastAddress(){

    }

    /**
     * 选择发票抬头
     */
    static chooseInvoiceTitle(){

    }

    /**
     * 获取最近使用的发票抬头
     */
    static getLastInvoiceTitle(){

    }
}



/**
 * 微信用户信息
 */
class UserInfo
{

}

/**
 * 收货地址
 */
class Address
{

}

/**
 * 发票抬头
 */
class InvoiceTitle
{

}